package com.example.service.impl;

import com.example.mapper.maturityManageMapp;
import com.example.pojo.maturityDataPojo;
import com.example.pojo.outputFileDataPojo;
import com.example.service.maturityManageService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

/**
 * ClassName:maturityManageImpl
 * Description:
 *
 * @Author 赵永峰
 * @Create 2025/3/11 16:12
 * @Version 1.0
 */
@Service
@Slf4j
public class maturityManageImpl implements maturityManageService {
    @Autowired
    private maturityManageMapp maturityManageMapp;
    //辅助函数：根据字段名，去搜索等于这个字段数据的所有数据,多个字段，用的是并且。现在写好的是根据一个字段搜索,并且赋值给成熟度管理的总表
   public   List<maturityDataPojo> inquiryFiledSeveralAnd(Map<String, Object> map){
       String firstFiledName=(String) map.get("firstFiledName");
       String firstFiledVal=(String) map.get("firstFiledVal");
       List<maturityDataPojo> pojos=maturityManageMapp.inquiryFiledSeveralAnd(firstFiledName,firstFiledVal);
       return pojos;
   }
    //插入一条项目数据，可以用在所以的插入一行中，已经设置了所有的字段
    public void insertOne(maturityDataPojo maturityDataPojo){
        System.out.println(maturityDataPojo);
        maturityManageMapp.insertOne(maturityDataPojo);
    }
    //辅助函数：根据Id，修改一个字段的值，Id可能是多个，后端进行分割，组合，分割符“/”.需要传入的是editOneFieldMaturitData数据
    public void editOneFieldSeveralId(Map<String, Object> map){
       String idSeveral=(String) map.get("id");
       String fieldName=(String) map.get("fieldName");
       String fieldVal=(String) map.get("fieldVal");
       //分割多个id
        String[] splitIds = idSeveral.split("/");
        // 遍历分割后的字符串数组，将每个元素转换为int并开始修改一个字段
        for (int i = 0; i < splitIds.length; i++) {
            int id = Integer.parseInt(splitIds[i]);
            maturityManageMapp.editOneFieldById(id,fieldName,fieldVal);
        }

    }
    //辅助函数：对输出物部分插入一行数据，向后端发送数据
    public void insetOneOutputFile(outputFileDataPojo pojo){
       pojo.setEstablishTime(LocalDateTime.now());
       pojo.setUpdateTime(LocalDateTime.now());
       maturityManageMapp.insetOneOutputFile(pojo);
    }
    //辅助函数：对输出物所有的信息筛选出来
    public List<outputFileDataPojo> inquiryOutputFileAll(){
       List<outputFileDataPojo> pojos=maturityManageMapp.inquiryOutputFileAll();
       return pojos;
    }
}
